import os
from jd_wechatpay import WeChatPay, WeChatPayType
from application.settings import WECHAT_PUBLIC_APPID, WECHAT_PAY_API_KEY, WECHAT_PAY_MCH_ID, CERT_SERIAL_NO,STATIC_ROOT, WECHAT_PAY_NOTIFY_URL

from app import setup_logger
logger = setup_logger('wechatpay', 'wechatpay.log')
# 微信支付商户号，服务商模式下为服务商户号，即官方文档中的sp_mchid。
SP_MCHID = WECHAT_PAY_MCH_ID

# 商户证书私钥，此文件不要放置在下面设置的CERT_DIR目录里。
with open(STATIC_ROOT + '/wechatpay/apiclient_key.pem') as f:
    PRIVATE_KEY = f.read()
    # print(PRIVATE_KEY)

# 商户证书序列号
CERT_SERIAL_NO = CERT_SERIAL_NO

# API v3密钥， https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay3_2.shtml
API_V3_KEY = WECHAT_PAY_API_KEY

# APPID，应用ID，服务商模式下为服务商应用ID，即官方文档中的sp_appid，也可以在调用接口的时候覆盖。
APPID = WECHAT_PUBLIC_APPID

# 回调地址，也可以在调用接口的时候覆盖。
NOTIFY_URL = WECHAT_PAY_NOTIFY_URL

# 微信支付平台证书缓存目录，初始调试的时候可以设为None，首次使用确保此目录为空目录。
CERT_DIR = './cert'


# 接入模式：False=直连商户模式，True=服务商模式。
PARTNER_MODE = False

# 代理设置，None或者{"https": "http://10.10.1.10:1080"}，详细格式参见 requests 库说明文档
PROXY = None


WXPay = WeChatPay(
        WeChatPayType.JSAPI,
        mch_id=SP_MCHID,
        private_key=PRIVATE_KEY,
        cert_serial_no=CERT_SERIAL_NO,
        app_id=APPID,
        api_v3_key=API_V3_KEY,
        notify_url=NOTIFY_URL,
        cert_dir=CERT_DIR,
        logger=logger,
        partner_mode=PARTNER_MODE
)

if __name__ == '__main__':
    pass
    # code, message = WXPay.pay.pay(
    #     description='desc',
    #     out_trade_no='324234324',
    #     amount={'total': 100},
    #     payer={'openid':"ououw6E_uFx2o5Jb3BdpDTeI8rlU"}
    # )
    # print({'code': code, 'message': message})